/*
 * str.h
 *
 *  Created on: Oct 19, 2024
 *      Author: 35702
 */

#ifndef INC_PID_H_
#define INC_PID_H_








int32_t _constrain_(int32_t amt,int32_t low,int32_t high);



/*定义位置PID参数相关宏*/
/*PID结构体*/
typedef struct
{

    __IO float  dt;           /* 采样周期 */
    __IO float  SetPoint;           /* 设定目标 */
    __IO float  ActualValue;        /* 实际值 */
    __IO float  SumError;           /* 误差累计 */

    __IO float  Kp;         /* 比例常数 P */
    __IO float  Ki;           /* 积分常数 I */
    __IO float  Kd;         /* 微分常数 D */

    __IO float  Error;              /* Error[-1] */
    __IO float  LastError;          /* Error[-1] */
    __IO float  PrevError;          /* Error[-2] */

    __IO float  IngMin;             /* 积分限制的最大项 */
    __IO float  IngMax;             /* 积分限制的最大小项 */

    __IO float  OutMin;             /* 输出限制 */
    __IO float  OutMax;
  void (*han_shu) ();                /*执行函数的指针*/

} PID_TypeDef;

// pid参数初始化
void pid_init(PID_TypeDef *list);
// pid参数运算
void computePID(float targetAngle, float currentAngle  , PID_TypeDef *list  , float * output) ;






#endif /* INC_STR_H_ */














